# -*- coding: utf-8 -*-
# @Date：2024/10/2 19:44:16
# @Author：CJiaの青姝
# @FileName：cj_file
# @Editor：PyCharm2024
# @Remark：
from django.shortcuts import get_object_or_404

from backend.settings import BASE_DIR


def construct_file(request, model, file):
    # 当前用户
    user_info = get_object_or_404(model, id=request.user_id)
    # 文件原名
    file_name = file.name[:file.name.rfind('.')]
    # 获取文件有效后缀
    suffix = file.name[file.name.rfind('.'):]
    # 若输入的目录不存在, 自动创建对应的文件目录并将文件上传到该目录中
    save_file = f"media/upload/{user_info.email}/"
    # 项目根目录
    base_dir = BASE_DIR
    # 文件绝对路径
    file_dir = rf"{base_dir}" + r"/media/upload" + rf"/{user_info.email}/{file_name + suffix}"
    # 构建文件参数
    return {
        "name": file_name,
        "size": len(file),
        "suffix": suffix.replace('.', ''),
        "baseDir": base_dir,
        "fileDir": file_dir,
        "path": save_file,
        "url": save_file,
        "user_id": user_info.id,
    }
